CV_CHOKE_PRESS_GAS
Overview
Calculates the pressure at which choked flow occurs in a gas control valve.
Excel Usage
=CV_CHOKE_PRESS_GAS(xt_factor, gamma, p_inlet, p_outlet)
xt_factor(float, required): Pressure difference ratio factor (-)gamma(float, required): Specific heat capacity ratio (-)p_inlet(float, optional, default: null): Inlet pressure (Pa)p_outlet(float, optional, default: null): Outlet pressure (Pa)
Returns (float): Choked pressure (Pa)
Examples
Example 1: Docs example (given P1)
Inputs:
| xt_factor | gamma | p_inlet |
|---|---|---|
| 1 | 1.3 | 100000 |
Excel formula:
=CV_CHOKE_PRESS_GAS(1, 1.3, 100000)
Expected output:
7142.86
Example 2: Docs example (given P2)
Inputs:
| xt_factor | gamma | p_outlet |
|---|---|---|
| 1 | 1.3 | 7142.86 |
Excel formula:
=CV_CHOKE_PRESS_GAS(1, 1.3, 7142.86)
Expected output:
100000.04
Example 3: Air at 1.0 XT
Inputs:
| xt_factor | gamma | p_inlet |
|---|---|---|
| 1 | 1.4 | 100000 |
Excel formula:
=CV_CHOKE_PRESS_GAS(1, 1.4, 100000)
Expected output:
0
Example 4: Nitrogen at 0.7 XT
Inputs:
| xt_factor | gamma | p_inlet |
|---|---|---|
| 0.7 | 1.4 | 100000 |
Excel formula:
=CV_CHOKE_PRESS_GAS(0.7, 1.4, 100000)
Expected output:
30000
Python Code
import micropip
await micropip.install(["fluids"])
from fluids.control_valve import control_valve_choke_P_g
def cv_choke_press_gas(xt_factor, gamma, p_inlet=None, p_outlet=None):
"""
Calculates the pressure at which choked flow occurs in a gas control valve.
See: https://fluids.readthedocs.io/fluids.control_valve.html#fluids.control_valve.control_valve_choke_P_g
This example function is provided as-is without any representation of accuracy.
Args:
xt_factor (float): Pressure difference ratio factor (-)
gamma (float): Specific heat capacity ratio (-)
p_inlet (float, optional): Inlet pressure (Pa) Default is None.
p_outlet (float, optional): Outlet pressure (Pa) Default is None.
Returns:
float: Choked pressure (Pa)
"""
if xt_factor <= 0:
return "Error: XT factor must be positive."
if gamma <= 1:
return "Error: Specific heat capacity ratio must be greater than 1."
if p_inlet is None and p_outlet is None:
return "Error: Either inlet pressure or outlet pressure must be provided."
try:
return float(control_valve_choke_P_g(xT=xt_factor, gamma=gamma, P1=p_inlet, P2=p_outlet))
except Exception as e:
return f"Error: {str(e)}"